•  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
r5
r1

(새 문서)
1[목차]
2== 개요 ==
3리눅스 명령어를 정리한 리스트 문서이다.
r2
4
5== 디렉토리/파일 관련 ==
6
7=== ls ===
8ls는 list의 약자로, 특정 디렉토리 내의 내용을 출력해주는 역할을 한다.
9
10|| 옵션 || 전체 || 설명 ||
11|| -l || || 각 파일/디렉토리에 대한 상세한 설명을 테이블 형태로 출력한다. ||
12|| -a || --all || 숨김 파일 또는 숨김 디렉토리[* {{{.}}}으로 시작하는 이름]를 표시한다.[br]단, {{{.}}}[* 현재 디렉토리]나 {{{..}}}[* 부모 디렉토리]도 같이 표시되는 단점이 있다. ||
13|| -1 || || 파일이나 디렉토리를 한 줄에 하나씩 출력한다. ||
14|| -t || || 수정일 순으로 출력한다. ||
15
16====# 결과 예시 #====
17{{{# ls -al
18total 68
19dr-xr-xr-x. 17 root root 262 Jan 16 15:22 .
20dr-xr-xr-x. 17 root root 262 Jan 16 15:22 ..
21-rw-r--r-- 1 root root 0 Jan 8 14:30 .autorelabel
22lrwxrwxrwx. 1 root root 7 Jan 8 14:10 bin -> usr/bin
23dr-xr-xr-x. 5 root root 4096 Jan 8 14:14 boot
24drwxr-xr-x 18 root root 3240 Jan 16 15:21 dev
25drwxr-xr-x. 73 root root 8192 Jan 16 15:21 etc
26drwxr-xr-x. 3 root root 34 Jan 8 14:38 home
27...}}}
28
r4
29=== cat ===
30파일의 내용을 터미널 창에 출력할 때 사용하는 명령어입니다.
31> cat file1
32
33====# 결과 예시 #====
34{{{# cat file1
35test123####
36test3641@#!!
37tteesstt}}}
38
39=====# {{{#f00 사용 시 주의 사항}}} #=====
40서버 점검 중 수 기가바이트(GB)가 넘는 대용량 로그 파일을 cat으로 열면 터미널이 멈추거나 시스템 성능이 저하될 수 있습니다.
41
42more 를 사용해 한 페이지씩 확인 할 수 있도록 하자
43> cat file1 | more
44
45
r2
46== 정보 표시관련 ==
47
48=== ifconfig ===
49Interface Configuration의 약자로, 리눅스나 유닉스 계열 운영체제에서 네트워크 인터페이스의 설정 상태를 확인하거나 변경할 때 사용하는 가장 기본적인 명령줄 도구입니다.
50
51IP 주소 확인, MAC 주소 확인, 인터페이스 확인
52> ifconfig
53
54|| -a || 활성화되지 않은 인터페이스를 포함하여 모든 정보를 표시합니다. || ifconfig -a ||
55|| [인터페이스] up/down || 특정 네트워크 인터페이스를 활성화/비활성화 합니다. || ifconfig eth0 up [br] ifconfig eth0 down ||
56|| [인터페이스] || 특정 네트워크 인터페이스 만 조회 할 수 있습니다. || ifconfig eth0 ||
57
58====# 결과 예시 #====
59{{{eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
60 inet 192.168.0.15 netmask 255.255.255.0 broadcast 192.168.0.255
61 ether 00:0c:29:ab:cd:ef txqueuelen 1000 (Ethernet)
62 RX packets 12345 bytes 10485760 (10.0 MiB)
63 TX packets 6789 bytes 5242880 (5.0 MiB)}}}
64'''eth0''' : 네트워크 인터페이스의 이름입니다. (요즘은 ens33, eno1 등으로 나오기도 하고 Bond 설정 시 bond0, bond1등으로 나온다.)
65'''inet''' : 현재 할당된 IPv4 주소입니다.
66'''netmask''' : 네트워크의 범위를 결정하는 서브넷 마스크입니다.
67'''ether''' : 랜카드의 물리적 주소인 MAC 주소입니다.
68'''RX/TX''' packets : 수신(Receive) 및 송신(Transmit)된 데이터 통계입니다. 여기서 에러(errors) 숫자가 높다면 네트워크 선이나 장비 결함을 의심해볼 수 있습니다.
69
70=====# 발생할 수 있는 Error또는 Drop #=====
71{{{RX packets 5021 bytes 625410 (610.7 KiB)
72 RX errors 154 dropped 892 overruns 12 frame 154
73 TX packets 900 bytes 85000 (83.0 KiB)
74 TX errors 45 dropped 0 overruns 0 carrier 45 collisions 20}}}
r3
75'''RX Errors''' : 외부 물리장비나 서버 리소스 부족 시 발생 (랜 케이블 노후, 스위치 포트 고장)
r2
76'''RX Drop''' : OS 방화벽 차단, 메모리/버퍼 부족
77'''TX Errors/Drop''' : 서버에서 데이터를 내보낼 때 발생하는 문제 (스위치 설정 불일치 또는 네트워크 전송 경로 물리적 장애)
78'''Overruns''' : 데이터가 쏟아지는 속도를 하드웨어나 커널이 못 따라갈 때 (고대역폭 데이터 급증 또는 커널 네이트워크 큐 사이즈 작음)
79
80=== route ===
81내 서버에서 나가는 데이터가 어느 길(Gateway)을 거쳐 가는지 확인하는 지도입니다.
82
83*관련 옵션*
84> 주소를 이름 대신 IP로 보여줌 [br] route -n
85
86> 좀 더 상세하게 출력 됨 [br] route -v
87
88> 라우팅 관련 추가/삭제 설정 시 사용한다. [br] # route add [br] # route del
89
90====# 결과 예시 #====
91{{{# route -n
92Kernel IP routing table
93Destination Gateway Genmask Flags Metric Ref Use Iface
940.0.0.0 192.168.0.1 0.0.0.0 UG 100 0 0 eth0
95192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
96169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0}}}
97
98'''Destination 0.0.0.0''' : 외부 인터넷으로 나가는 모든 경로 (기본 통로)
99'''Gateway''' : 우리 집 '대문' 역할을 하는 장비 주소 (공유기나 라우터 IP)
100'''Iface''' : 데이터가 실제로 나가는 랜카드 이름 (예: eth0)
101
102=== ntpd ===
103서버의 시간이 표준 시간과 얼마나 잘 맞고 있는지, 어떤 외부 시간 서버로부터 정보를 받아오고 있는지 상태를 조회하는 명령어입니다.
104> ntpq -p
105
106
107====# 결과 예시 #====
108{{{remote refid st t when poll reach delay offset jitter
109==============================================================================
110*time.google.com .GOOG. 1 u 156 128 377 2.105 -0.015 0.032
111+time.bora.net 204.123.2.5 2 u 89 128 377 15.420 1.520 0.110}}}
112
113=====# 발생 할 수 있는 에러/오류 #=====
114ntpq: read: Connection refused
115원인: 내 서버에서 ntpd(NTP 서비스)가 실행 중이지 않을 때 발생합니다.
116조치: systemctl start ntpd
117
118remote 항목 앞에 아무 기호(*, +)가 없을 때
119원인: 시간 서버와 연결은 되지만 패킷을 주고받는 데 문제가 있거나, 이제 막 서비스를 시작해서 동기화할 시간이 더 필요한 경우입니다.
120조치: 5~10분 정도 기다려보고, 계속 그대로라면 ntp(ntp.conf) 설정 파일 확인, 파일도 이상이 없다면 route 정보 확인이 필요하다.
121
122=== ping ===
r5
123특정 장비(서버, PC 등)가 현재 살아있는지, 그리고 나와의 통신 속도는 어느 정도인지 확인하는 네트워크 진단 도구입니다.
r2
124> ping 8.8.8.8
125
126|| 옵션 || 전체 || 설명 ||
127|| -c [횟수] || 지정한 횟수만큼만 패킷을 전송하고 종료합니다. || ping -c 4 8.8.8.8 ||
128|| -I [인터페이스명|IP] || 패킷을 보낼 인터페이스 또는 출발지 IP 주소를 지정합니다. || ping -I eth0 8.8.8.8 ||
129
130====# 결과 예시 #====
131{{{PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
13264 bytes from 8.8.8.8: icmp_seq=1 ttl=115 time=32.5 ms
13364 bytes from 8.8.8.8: icmp_seq=2 ttl=115 time=31.2 ms
13464 bytes from 8.8.8.8: icmp_seq=3 ttl=115 time=30.8 ms
135
136--- 8.8.8.8 ping statistics ---
1373 packets transmitted, 3 received, 0% packet loss, time 2003ms
138rtt min/avg/max/mdev = 30.812/31.503/32.511/0.732 ms}}}
139
140=====# 발생 할 수 있는 에러/오류 #=====
141Destination Host Unreachable
142의미 : 상대방에게 가는 길을 아예 못 찾을 때 발생합니다.
143원인 : 내 컴퓨터의 게이트웨이(route) 설정이 틀렸거나, 상대방 주소가 잘못된 경우.
144조치1 : 내 IP가 정상 할당 되었는지 확인
145조치2 : route -n 명령어로 Default Gateway(0.0.0.0)가 올바르게 설정되어 있는지 확인합니다.
146조치3 : 랜 케이블이 제대로 꽂혀 있는지, 스위치 허브의 포트에 불이 들어와 있는지 확인합니다.
147
148Request Timeout (타임아웃)
149의미 : 신호는 보냈으나 대답이 없을 때 발생합니다.
150원인 : 상대방 서버가 꺼져 있거나, 상대방의 **방화벽(Firewall)**이 핑 신호(ICMP)를 차단하고 있는 경우입니다.
151조치1 : 상대방 서버의 방화벽(iptables 등)에서 ICMP(Ping) 응답이 차단되어 있는지 확인하고 허용합니다.
152조치2 : 상대방 서버가 실제로 켜져 있는지(Power On) 확인합니다.
153
154Unknown Host
155의미 : 입력한 도메인 주소(예: naver.com)를 찾을 수 없을 때 발생합니다.
156원인 : DNS 설정이 잘못되어 주소를 IP로 변환하지 못하는 상태입니다.
157조치1 : /etc/resolv.conf 파일(Linux)에서 DNS 서버 주소(예: 8.8.8.8)가 맞게 등록되어 있는지 확인합니다.
158조치2 : /etc/hosts 파일에 엉뚱한 IP 주소가 강제로 고정되어 있는지 확인합니다.
159
r5
160=== netstat ===
161서버의 네트워크 연결 상태, 라우팅 테이블, 인터페이스 통계 등을 보여주는 강력한 네트워크 진단 도구입니다.
162> netstat
163
164|| 옵션 || 전체 || 설명 ||
165|| -a || 모든 소켓(연결 및 대기)을 표시합니다. || `netstat -a` ||
166|| -n || 주소와 포트 번호를 이름 대신 숫자로 표시합니다. || `netstat -an` ||
167|| -p || 해당 포트를 사용하는 프로그램 이름과 PID를 표시합니다. || `netstat -ap` ||
168|| -t || TCP 프로토콜만 표시합니다. || `netstat -at` ||
169|| -l || 연결 대기 중인(Listen) 포트만 표시합니다. || `netstat -nl` ||
170
171====# 결과 예시 #====
172{{{tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1234/nginx: master
173tcp6 0 0 :::80 :::* LISTEN 1234/nginx: master}}}
174
175
r2
176=== df ===
177마운트된 디스크 사용량을 출력한다. HP-UX의 경우 df와 bdf가 구분되어 있으며, bdf가 우리가 현재 알고있는 df의 형식을 출력한다.
178> df [옵션] [파일]
179|| 옵션 || 설명 ||
180|| -i, --inodes || i-node 사용량을 대신 표시한다. ||
181|| -h, --human-readable || 읽기 쉽도록 1,024를 [[거듭제곱]]한 단위를 사용한다. (예시: 1023M)||
182
183====# 결과 예시 #====
184{{{# df -h
185Filesystem Size Used Avail Use% Mounted on
186devtmpfs 5.8G 0 5.8G 0% /dev
187tmpfs 5.9G 0 5.9G 0% /dev/shm
188tmpfs 5.9G 8.9M 5.8G 1% /run
189tmpfs 5.9G 0 5.9G 0% /sys/fs/cgroup
190/dev/nvme0n1p4 50G 1.5G 49G 3% /
191/dev/nvme0n1p2 1014M 125M 890M 13% /boot
192/dev/nvme0n1p1 200M 12M 189M 6% /boot/efi
193/dev/nvme0n1p5 182G 105M 182G 1% /home
194tmpfs 1.2G 0 1.2G 0% /run/user/1000}}}
195
r5
196
197=== ps ===
198현재 시스템에서 실행 중인 프로세스의 목록과 상태를 확인하는 명령어입니다.
199> ps
200|| 옵션 || 설명 ||
201|| -e || 시스템의 모든 프로세스를 표시합니다. || ps -e ||
202|| -f || 상세한 정보를 포함하는 풀 포맷으로 표시합니다. || ps -ef ||
203
204====# 결과 예시 #====
205{{{# ps -ef
206UID PID PPID C STIME TTY TIME CMD
207root 1 0 0 Jan20 ? 00:00:05 /usr/lib/systemd/systemd
208root 1234 1 0 10:30 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
209apache 1235 1234 0 10:30 ? 00:00:02 /usr/sbin/httpd -DFOREGROUND
210root 3052 3010 0 14:20 pts/0 00:00:00 ps -ef
211...}}}
212
213
214
215
216